package com.gcxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gcxy.core.PageVO;
import com.gcxy.core.R;
import com.gcxy.dto.role.AddRoleDTO;
import com.gcxy.dto.role.UpdateRoleDTO;
import com.gcxy.dto.role.RolePageDTO;
import com.gcxy.entity.Role;
import com.gcxy.vo.role.RoleVO;

import java.util.List;

/**
 * @author pep7chiao
 * @date 2024/7/7
 */
public interface RoleService extends IService<Role> {
    /**
     * 获取所有角色
     *
     * @return 获取所有角色
     */
    List<RoleVO> getAllRoles();

    /**
     * 更新角色信息
     *
     * @param updateRoleDTO 角色对象
     * @return 前端返回对象
     */
    R<Void> updateRole(UpdateRoleDTO updateRoleDTO);

    /**
     * 删除指定的角色
     *
     * @param roleId 角色ID
     * @return 前端返回对象
     */
    R<Void> deleteRoleById(Integer roleId);

    /**
     * 新增角色
     *
     * @param addRoleDTO 角色数据传递对象
     * @return 前端返回对象
     */
    R<Void> insertRole(AddRoleDTO addRoleDTO);

    /**
     * 根据条件分页查询角色
     *
     * @param rolePageDTO 查询条件
     * @return 查询结果
     */
    PageVO getRolePageByCondition(RolePageDTO rolePageDTO);
}
